home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / StdEnv / StdClass.dcl < prev    next >
Text File  |  1996-12-23  |  1KB  |  55 lines

  1. definition module StdClass
  2.  
  3. // ****************************************************************************************
  4. //    Concurrent Clean Standard Library Module Version 1.1
  5. //    Copyright 1995 University of Nijmegen
  6. // ****************************************************************************************
  7.  
  8. import StdOverloaded
  9. from StdBool import not
  10.  
  11. //    Remark: derived class members are not implemented yet!
  12. //    For the time-being, macro definitions are used for this purpose
  13. //    This may cause misleading error messages in case of type errors 
  14.  
  15. class PlusMin a | + , - , zero a
  16.  
  17. class MultDiv a | * , / , one a
  18.  
  19. class Arith a     | PlusMin , MultDiv , abs , sign , ~ a 
  20.  
  21. class IncDec a    | + , - , one , zero a
  22. where
  23.     inc :: !a -> a        | + , one a
  24.     inc x :== x + one
  25.  
  26.     dec :: !a -> a        | - , one a
  27.     dec x :== x - one
  28.  
  29. class Enum a     | < , IncDec a
  30.  
  31. class Eq a    | == a    
  32. where
  33.  (<>) infix  4 :: !a    !a    ->    Bool | Eq a
  34.  (<>) x y :== not (x == y)
  35.  
  36. class Ord a    | < a
  37. where
  38.  
  39.  (>) infix  4 :: !a !a    ->    Bool | Ord a
  40.  (>) x y  :== y < x 
  41.  
  42.  (<=) infix  4 :: !a !a    ->    Bool | Ord a
  43.  (<=) x y :== not (y<x)
  44.  
  45.  (>=) infix  4 :: !a !a    ->    Bool | Ord a
  46.  (>=) x y :== not (x<y) 
  47.  
  48.  min::!a !a ->    a | Ord a
  49.  min x y  :== if (x<y) x y
  50.  
  51.  max::!a !a ->    a | Ord a
  52.  max x y  :== if (x<y) y x
  53.  
  54.  
  55.